<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      /* 
            事件循环(event loop)
                - 在函数每次执行的时候,都会产生一个执行环境
                - 执行环节负责存储函数执行时,产生的一切数据
                    -问题: 函数的执行环境要存储在哪呢
                        - 函数的执行环境存储到了一个叫调用栈的地方
                        - 栈,是一种计算机数据结构,特点,先进后出
                            类似于弹夹装子弹,一个一个赛,最后的塞是在栈的最顶端的
                            在页面中调时的时候,看堆栈,谁在栈顶,谁就是正在执行的函数
                            执行完函数以后,就会退出堆栈.
                调用栈(call stack)
                    - 调用栈会负责存储函数的执行环境
                    - 当一个函数被调用的时候,它的执行环节会作为一个栈帧
                        插入到调用栈的栈顶,函数执行完毕其栈帧就会自动从中弹出
        */
      fu = () => {
        fn2 = () => {
          console.log('fn2');
        };
        console.log('fn');
      };
      fn();
      console.log('全局作用域');
    </script>
  </body>
</html>
